package april;

/**
 * @author ：冯涛滔
 * @date ：Created in 2020-4-26 22:00
 * @description：
 * @modified By：
 * @version:
 */
public class April26 {
    static class ListNode {
      int val;
      ListNode next;
      ListNode(int x) { val = x; }
    }
    /**
     * create by: 睚雪
     * description: https://leetcode-cn.com/problems/merge-two-sorted-lists/
     * create time: 2020-4-26 22:03
     * 1. 因为已经是升序结构了 所以每次被压进栈里的值一定是最小的那个
     * 2. 第一次先讲最小的值压进栈里 然后递归比较下面的值 并且连接到最小的值后面
     * @params [l1, l2]
     * @return april.April26.ListNode
     */
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        //如果某个值递归空了后面的也就没有比较的意义了毕竟是排过序了的
        if(l1==null){ 
            return l2;
        }
        if(l2==null){
            return l1;
        }
        if(l1.val<l2.val){//为了找出每次最小的值 返回是为了将找出的值放到前一个值的后面
            mergeTwoLists(l1.next,l2);
            return l1;
        }else{
            mergeTwoLists(l1,l2.next);
            return l2;
        }
    }
}
